// routes/index.js
const express = require('express');
const fs = require('fs');
const path = require('path');
const router = express.Router();


router.get('/', (req, res) => {
  fs.readdir(global.UPLOAD_DIR, (err, files) => {
    if (err) return res.status(500).send('无法读取文件目录');
    
    // 使用模板引擎渲染
    res.render(path.join(global.INIT_DIR, './public/index/index.ejs'), { 
      files: files,
      encodeURIComponent: encodeURIComponent // 传递编码函数
    });
  });
});


router.get('/download/:filename', (req, res) => {
  const filePath = path.join(global.UPLOAD_DIR, req.params.filename);
  
  // 先检查文件是否存在，避免在 res.download 回调中处理错误
  fs.access(filePath, fs.constants.F_OK, (err) => {
    if (err) {
      return res.status(404).send('文件未找到'); // 文件不存在，直接返回 404
    }
    // 文件存在，安全调用 res.download
    res.download(filePath, (err) => {
      if (err) {
        console.error('下载失败:', err); // 仅记录错误，不发送响应
      }
    });
  });
});

router.get('/stream/:file', (req, res) => {
  const filePath = path.join(global.UPLOAD_DIR, req.params.file);
  res.header('Accept-Ranges', 'bytes');
  res.sendFile(filePath); // 自动处理范围请求
});


module.exports = router;